package org.dxy.api.dto.request.materialGroup;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;

/**
 * 更新物料群组请求DTO
 * @author dxy
 * @createTime 2025/9/5
 */
@Data
public class UpdateMaterialGroupRequest {
    
    /**
     * 群组名称，用于显示和描述（必填）
     */
    @NotBlank(message = "群组名称不能为空")
    @Size(max = 100, message = "群组名称长度不能超过100个字符")
    private String groupName;
    
    /**
     * 群组描述，记录群组的用途或备注（可选）
     */
    @Size(max = 500, message = "群组描述长度不能超过500个字符")
    private String description;
    
    /**
     * 群组状态，ACTIVE（启用）、INACTIVE（禁用）
     */
    private String status;
    
    /**
     * 分组类型：MATERIAL_TYPE（按物料类型）、PROCESS_ATTR（按工艺属性）、BUSINESS_ATTR（按业务属性）、PRICING_METHOD（按计价方式）
     */
    @Size(max = 50, message = "分组类型长度不能超过50个字符")
    private String groupType;
    
    /**
     * 父群组ID，用于构建群组层级关系（可选）
     */
    private Long parentGroupId;
    
    /**
     * 排序序号，用于群组显示排序（可选）
     */
    private Integer sortOrder;
}